package org.car.word.hutool;

import cn.hutool.core.util.CharsetUtil;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.symmetric.SymmetricAlgorithm;
import cn.hutool.crypto.symmetric.SymmetricCrypto;

/**
 * 
    * @ClassName: SymmetricCrypto
    * @Description: 加密的简单使用 -- SymmetricCrypto -- 对称加密
    * @author szw
    * @date 2019年3月26日
    *
 */
public class SymmetricCryptoTest {

	
	
public static void main(String[] args) {
   
	String conent = "test中文";
	
	//随机生成密匙
	byte[] ket = SecureUtil.generateKey(SymmetricAlgorithm.AES.getValue()).getEncoded();
	
	//构建
	SymmetricCrypto  aes = new SymmetricCrypto(SymmetricAlgorithm.AES,ket);
	
	//加密
	byte [] jiami =  aes.encrypt(conent);
	
	//解密
	byte [] jiemi = aes.decrypt(jiami);
	
	//将加密后的数据以十六进制显示
	String jmstr = aes.encryptHex(jiami);
	
	//将解密的数据用字符串显示
	String jiemistr= aes.decryptStr(jmstr, CharsetUtil.CHARSET_UTF_8);
	
	
	System.out.println("加密后的数据："+jmstr);
	System.out.println("解密后的数据："+jiemistr);
	
	
}
	
	
}
